package com.yupi.yuojbackendcommon.common;


public class ResultUtils {

    /**
     * 成功
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> success(T data) {
 //这个统一返回的工具的执行流程是 在controller方法里面调用success方法 把需要返回的data传过来 然后在success里面调用统一返回类BaseResponse
//然后把data code message在BaseResponse进行复制然后在返回给前端 前端就可以通过BaseResponse取出data了
 //这里的data是一个T泛型 所以像分页的数据list也可以进行封装
 // 总记录数一定是要返回给前端的 在getQuestionSubmitVOPage方法里面的返回值questionSubmitVOPage这里面封装了总记录数 每页大小和页号 作为整体data直接返回给前端了
        //前端是需要根据总记录数 每页大小和页号去渲染页面的
        return new BaseResponse<>(0, data, "ok");
    }

    /**
     * 失败
     *
     * @param errorCode
     * @return
     */
    public static BaseResponse error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }

    /**
     * 失败  用于自定义异常的   返回成功信息的时候data才有值  返回错误信息的时候data为null
     *
     * @param code
     * @param message
     * @return
     */
    public static BaseResponse error(int code, String message) {
        return new BaseResponse(code, null, message);
    }

    /**
     * 失败  用于除了自定义异常 然后在ErrorCode取出一个统一的错误信息 和学成在线服务一样
     *
     * @param errorCode
     * @return
     */
    public static BaseResponse error(ErrorCode errorCode, String message) {
        return new BaseResponse(errorCode.getCode(), null, message);
    }
}
